package com.bestcem.xm.user.controller.vo.user;

import com.alibaba.fastjson.JSONObject;
import com.bestcem.xm.user.grpc.client.dto.IndustryInfoDTO;
import com.bestcem.xm.user.service.dto.user.OrgCustomSettingInfoDTO;
import com.bestcem.xm.user.service.dto.user.OrgPackInfoDTO;
import com.bestcem.xm.user.service.dto.user.OrgQuotaInfoDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.Date;

/**
 * companyVO 信息
 *
 * @author jishuo.yan <jishuo.yan@idiaoyan.com>
 * @date 2022/3/4 17:03
 */
@Data
public class CompanyVO {

    /**
     * 公司code
     */
    private String code;

    /**
     * 租户自定义域名信息
     */
    @JsonProperty("custom_setting")
    private OrgCustomSettingInfoDTO customSetting;

    /**
     * 公司名称
     */
    private String name;

    /**
     * 组织状态：【0：启用中、1：停用中、2：已过期、3：预创建】默认：0
     */
    private Integer status;

    /**
     * 公司套餐过期时间
     */
    @JsonProperty("expiryDT")
    @JsonFormat(pattern = "yyyy/MM/dd")
    private Date packageExpireTime;

    /**
     * 公司免费套餐过期时间
     */
    @JsonProperty("free_expiryDT")
    private Date freeExpireTime;

    /**
     * 公司皮肤
     */
    private JSONObject skin;

    /**
     * RSA公钥文件路径
     */
    private String publicKey;

    /**
     * 老的版本标识  (PACK_EDITION_FREE, u'免费版'), (PACK_EDITION_ENTERPRISE, u'企业版'),
     */
    @JsonProperty("edition")
    private Integer packEdition;

    /**
     * 是否完善信息
     */
    @JsonProperty("is_complete")
    private Boolean completeFlag;

    /**
     * 公司联系人邮箱
     */
    private String email;

    /**
     * 公司名称
     */
    @JsonProperty("org_name")
    private String orgName;

    /**
     * 默认销售手机号
     */
    private String contact;

    /**
     * 品牌是否露出
     */
    @JsonProperty("footer_edit")
    private Boolean footerEdit;

    /**
     * 行业信息
     */
    private IndustryInfoDTO industry;

    /**
     * 应用名称
     */
    @JsonProperty("is_xm")
    private Boolean settingsIsXm;

    /**
     * # 如果 SaaS | 引擎 == "clickhouse"，展示新旧数据看板切换按钮
     */
    @JsonProperty("np_show")
    private Boolean settingsNpShow;

    /**
     * 创建时间
     */
    @JsonProperty("created_dt")
    private Date createTime;

    /**
     * 前端PaaS配置
     */
    @JsonProperty("paas_conf")
    private JSONObject passConf;

    /**
     * 公司id
     */
    @JsonProperty("org_id")
    private String orgId;

    @JsonProperty("unnet")
    private Boolean unNet;

    /**
     * 账号来源：【0：手动添加、1：预约添加、2：注册添加、3：华为注册添加、4：微信小程序注册添加、5：微信公众号注册添加、6：开放平台接入】默认：0
     */
    private Integer source;

    /**
     * 租户升级联系人手机号
     */
    @JsonProperty("contacts_mobile")
    private String contactsMobile;

    /**
     * 租户联系人邮箱
     */
    @JsonProperty("contacts_email")
    private String contactsEmail;

    /**
     * 租户联系人二维码
     */
    @JsonProperty("contacts_qrcode")
    private String contactsQrcode;

    /**
     * 合作伙伴官网
     */
    @JsonProperty("platform_url")
    private String platformUrl;

    @JsonProperty("pack")
    private OrgPackInfoDTO packPerm;

    /**
     * 公司限额信息
     */
    @JsonProperty("qutainfo")
    private OrgQuotaInfoDTO quotainfo;

    /**
     * 对外套餐名
     */
    @JsonProperty("pack_name")
    private String packOutName;

    /**
     * 套餐版本
     */
    @JsonProperty("pack_type")
    private Integer packType;

    /**
     * 是否显示广告
     */
    @JsonProperty("ad_display")
    private Boolean packAdDisplay;

    /**
     * 是否显示一级导航栏
     */
    @JsonProperty("navigation_display")
    private Boolean packNavigationDisplay;

    /**
     * 是否到达账号限额
     */
    @JsonProperty("user_reach")
    private Boolean userReach;

    /**
     * 是否到达答卷限额
     */
    @JsonProperty("respondent_reach")
    private Boolean respondentReach;

    /**
     * 是否到达问卷限额
     */
    @JsonProperty("project_reach")
    private Boolean projectReach;

    /**
     * 是否到达个人联系人限额
     */
    @JsonProperty("member_ind_reach")
    private Boolean memberIndReach;

    /**
     * 是否是试用套餐
     */
    @JsonProperty("is_trial")
    private Boolean trialFlag;

    /**
     * 是否开启mfa认证
     */
    @JsonProperty("open_mfa")
    private Boolean openMfa;

    /**
     * 是否开启语音答题
     */
    @JsonProperty("open_speech_answer")
    private Boolean openSpeechAnswer;

}
